package base;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ResourceBundle;

/**
 * Classe qui gère la connexion avec la base de données.
 * 
 * @author Guillaume Dadoy & Emeric Tassel
 *
 */
public class Base {

	String fichierConfig = "base";
	String url = null;
	String user = null;
	String password = null;
	
	Connection connection = null;
	
	/**
	 * Constructeur de la classe.
	 * Retire les informations de connexion du fichier de configuration base.properties.
	 */
	public Base() {
		ResourceBundle rs = 
			ResourceBundle.getBundle(fichierConfig);
		url = rs.getString("url");
		user = rs.getString("user");
		password = rs.getString("password");
	}
	
	/**
	 * Méthode qui permet d'obtenir l'objet de la connexion.
	 * 
	 * @return
	 * {@link Connection}
	 */
	public Connection getConnection() {
		return connection;
	}

	/**
	 * Méthode qui permet d'ouvrir la connexion avec la base de données.
	 * Toutes les transactions effectuées par la suite sont auto-commit.
	 * 
	 * @return
	 * <b>true</b> en cas de succès.
	 * <b>false</b> en cas d'échec.
	 */
	public boolean ouvrir() {
		boolean res = false;
		try {
			connection = DriverManager.getConnection(url, user, password);
			System.out.println("Base.ouvrir: url = "+url);
			res = true;
		} catch (SQLException e) {
			System.out.println("Base.ouvrir: erreur url = "+url);
			res = false;
		}
		
		return res;
	}
	
	/**
	 * Méthode qui permet de fermer la connexion avec la base de données.
	 */
	public void fermer() {
		try {if (connection != null) connection.close();} catch (Exception e) {}
	}
	
}
